{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import skgeom\n",
    "from skgeom.draw import draw\n",
    "from skgeom import voronoi\n",
    "\n",
    "from matplotlib import pyplot as plt\n",
    "import matplotlib.patches as patches\n",
    "\n",
    "import math"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a: PointC2(4, 5)\n"
     ]
    }
   ],
   "source": [
    "a = skgeom.Point2(4, 5)\n",
    "b = skgeom.Point2(2, 1)\n",
    "c = skgeom.Point2(3, 6)\n",
    "d = skgeom.Point2(5,2)\n",
    "print('a:', a)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Point_2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(a, color='purple')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Point_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[PointC2(4, 5), PointC2(2, 1), PointC2(3, 6), PointC2(5, 2)]\n"
     ]
    }
   ],
   "source": [
    "point_list = [a,b,c,d]\n",
    "print(point_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(point_list, color = 'red')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Vector_2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "VectorC2(-1, 1)\n"
     ]
    }
   ],
   "source": [
    "vector = skgeom.Vector2(a, c)\n",
    "print(vector)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(vector, display_range=1.5, color='blue')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(vector, color='blue')\n",
    "draw(vector.perpendicular(skgeom.Sign.COUNTERCLOCKWISE), display_range=1.5, color='orange')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Ray_2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RayC2(PointC2(4, 5), PointC2(5, 2))\n"
     ]
    }
   ],
   "source": [
    "ray = skgeom.Ray2(a, d)\n",
    "print(ray)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(ray, arrow=True, color='red')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Direction_2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "DirectionC2(-1, 1)\n"
     ]
    }
   ],
   "source": [
    "direction = skgeom.Direction2(vector)\n",
    "print(direction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(direction, display_range=1.5, color='orange')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Bbox_2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Bbox_2(2, 1, 4, 6)\n"
     ]
    }
   ],
   "source": [
    "bbox = a.bbox() + b.bbox() + c.bbox()\n",
    "print(bbox)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(bbox, display_range=3, fill=True, color='green')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "bbox = a.bbox() + b.bbox() + c.bbox() + d.bbox()\n",
    "\n",
    "draw(bbox, display_range=3, fill=True, color='green', alpha=0.2)\n",
    "draw([a,b,c,d])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Line_2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Line_2(4, -2, -6)\n"
     ]
    }
   ],
   "source": [
    "line = skgeom.Line2(a, b)\n",
    "print(line)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(line, start=-6, stop=6, num=150, color='black')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Iso_rectangle_2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iso_rectangle_2(PointC2(2, 2), PointC2(4, 6))\n"
     ]
    }
   ],
   "source": [
    "iso_rectangle = skgeom.IsoRectangle2(b, a, d, c)\n",
    "print(iso_rectangle)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAD4CAYAAADxeG0DAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAML0lEQVR4nO3dX4yldX3H8fenO1pklUDD9I+70MWU0BKiwUwMSmITFxNUAr3oBSQYqk02TapSI1EoF141aSIxmmhsNog1YQMXiJEYVNZ/bZoU4iwQBRaVYIUVLGOaWrNe0I3fXuwh2S7szsye387jd+b9SjYz5zlPfs/3gd13nnnOObupKiRJff3O1ANIkuZjyCWpOUMuSc0ZcklqzpBLUnMLUxz03HPPrV27dk1xaElq68CBA7+oqsXjt08S8l27drG8vDzFoSWprSQ/faXt3lqRpOYMuSQ1Z8glqTlDLknNGXJJas6QS1JzhlySmjPkktScIZek5gy5JDVnyCWpuTWHPMkdSV5I8tgx234vyf4kP559Pef0jClJOpH1XJH/M3DlcdtuBr5VVRcC35o9liRtoDWHvKr+Ffiv4zZfA3xx9v0Xgb8YNJckaY3mvUf+B1X1PMDs6++faMcke5IsJ1leWVmZ87CSpJds2IudVbW3qpaqamlx8WV/L7ok6RTNG/L/TPJHALOvL8w/kiRpPeYN+X3ADbPvbwC+Mud6kqR1Ws/bD+8C/h24KMmhJH8N/CPwziQ/Bt45eyxJ2kBr/jc7q+q6Ezy1e9AskqRT4Cc7Jak5Qy5JzRlySWrOkEtSc4Zckpoz5JLUnCGXpOYMuSQ1Z8glqTlDLknNGXJJas6QS1JzhlySmjPkktScIZek5gy5JDVnyCWpOUMuSc0ZcklqzpBLUnOGXJKaM+SS1NyQkCf5cJLHkzyW5K4kZ4xYV5K0urlDnmQH8CFgqaouAbYB1867riRpbUbdWlkAXpNkATgTeG7QupKkVcwd8qr6GXAb8AzwPPDLqnrg+P2S7EmynGR5ZWVl3sNKkmZG3Fo5B7gGuAB4PbA9yfXH71dVe6tqqaqWFhcX5z2sJGlmxK2VK4CfVNVKVf0vcC/wtgHrSpLWYETInwEuS3JmkgC7gYMD1pUkrcGIe+QPAfcADwM/mK25d951JUlrszBikar6OPDxEWtJktbHT3ZKUnOGXJKaM+SS1Jwhl6TmDLkkNWfIJak5Qy5JzRlySWrOkEtSc4Zckpoz5JLUnCGXpOYMuSQ1Z8glqTlDLknNGXJJas6QS1JzhlySmjPkktScIZek5gy5JDVnyCWpuSEhT3J2knuSPJnkYJK3jlhXkrS6hUHrfBr4elX9ZZJXA2cOWleStIq5Q57kLODtwF8BVNWLwIvzritJWpsRV+RvAFaALyR5E3AAuLGqDh+7U5I9wB6A888/f8BhtRXcdtttHD58ePUdm9q+fTs33XTT1GOouRH3yBeANwOfq6pLgcPAzcfvVFV7q2qpqpYWFxcHHFZbwWaOOGz+89PGGBHyQ8Chqnpo9vgejoZdkrQB5g55Vf0ceDbJRbNNu4En5l1XkrQ2o9618kFg3+wdK08D7xu0riRpFUNCXlWPAksj1pIkrY+f7JSk5gy5JDVnyCWpOUMuSc0ZcklqzpBLUnOGXJKaM+SS1Jwhl6TmDLkkNWfIJak5Qy5JzRlySWrOkEtSc4Zckpoz5JLUnCGXpOYMuSQ1Z8glqTlDLknNGXJJas6QS1Jzw0KeZFuSR5J8ddSakqTVjbwivxE4OHA9SdIaDAl5kp3Ae4DbR6wnSVq7UVfknwI+CvzmRDsk2ZNkOcnyysrKoMNKkuYOeZKrgBeq6sDJ9quqvVW1VFVLi4uL8x5WkjQz4or8cuDqJP8B3A28I8mdA9aVJK3B3CGvqluqamdV7QKuBb5dVdfPPZkkaU18H7kkNbcwcrGq+i7w3ZFrSpJOzitySWrOkEtSc4Zckpoz5JLUnCGXpOYMuSQ1Z8glqTlDLknNGXJJas6QS1JzhlySmjPkktScIZek5gy5JDVnyCWpOUMuSc0ZcklqzpBLUnOGXJKaM+SS1Jwhl6TmDLkkNTd3yJOcl+Q7SQ4meTzJjSMGkyStzcKANY4AH6mqh5O8DjiQZH9VPTFgbUnSKua+Iq+q56vq4dn3vwIOAjvmXVeStDZD75En2QVcCjz0Cs/tSbKcZHllZWXkYbWJbd++feoRTqvNfn7aGKmqMQslrwX+BfiHqrr3ZPsuLS3V8vLykONK0laR5EBVLR2/fcgVeZJXAV8C9q0WcUnSWCPetRLg88DBqvrk/CNJktZjxBX55cB7gXckeXT2690D1pUkrcHcbz+sqn8DMmAWSdIp8JOdktScIZek5gy5JDVnyCWpOUMuSc0ZcklqzpBLUnOGXJKaM+SS1Jwhl6TmDLkkNWfIJak5Qy5JzRlySWrOkEtSc4Zckpoz5JLUnCGXpOYMuSQ1Z8glqTlDLknNGXJJam5IyJNcmeSHSZ5KcvOINSVJazN3yJNsAz4LvAu4GLguycXzritJWpsRV+RvAZ6qqqer6kXgbuCaAetKktZgRMh3AM8e8/jQbNv/k2RPkuUkyysrKwMOK0mCMSHPK2yrl22o2ltVS1W1tLi4OOCwkiQYE/JDwHnHPN4JPDdgXUnSGowI+feAC5NckOTVwLXAfQPWlSStwcK8C1TVkSQfAL4BbAPuqKrH555MkrQmc4ccoKruB+4fsZYkaX38ZKckNWfIJak5Qy5JzRlySWrOkEtSc4Zckpoz5JLUnCGXpOYMuSQ1Z8glqTlDLknNGXJJas6QS1JzhlySmjPkktScIZek5gy5JDVnyCWpOUMuSc0ZcklqzpBLUnOGXJKamyvkST6R5Mkk30/y5SRnjxpMkrQ2816R7wcuqao3Aj8Cbpl/JEnSeswV8qp6oKqOzB4+COycfyRJ0nqMvEf+fuBrJ3oyyZ4ky0mWV1ZWBh5Wkra2hdV2SPJN4A9f4albq+ors31uBY4A+060TlXtBfYCLC0t1SlNK0l6mVVDXlVXnOz5JDcAVwG7q8pAS9IGWzXkJ5PkSuBjwJ9X1a/HjCRJWo9575F/BngdsD/Jo0n+acBMkqR1mOuKvKr+ZNQgkqRT4yc7Jak5Qy5JzRlySWrOkEtSc4Zckpoz5JLUnCGXpOYMuSQ1Z8glqTlDLknNZYq/sDDJCvDTDTzkucAvNvB4G20zn99mPjfw/Lrb6PP746paPH7jJCHfaEmWq2pp6jlOl818fpv53MDz6+635fy8tSJJzRlySWpuq4R879QDnGab+fw287mB59fdb8X5bYl75JK0mW2VK3JJ2rQMuSQ1t2VCnuQTSZ5M8v0kX05y9tQzzSvJlUl+mOSpJDdPPc9ISc5L8p0kB5M8nuTGqWc6HZJsS/JIkq9OPctoSc5Ocs/sz93BJG+deqZRknx49vvysSR3JTljynm2TMiB/cAlVfVG4EfALRPPM5ck24DPAu8CLgauS3LxtFMNdQT4SFX9GXAZ8Leb7PxeciNwcOohTpNPA1+vqj8F3sQmOc8kO4APAUtVdQmwDbh2ypm2TMir6oGqOjJ7+CCwc8p5BngL8FRVPV1VLwJ3A9dMPNMwVfV8VT08+/5XHI3AjmmnGivJTuA9wO1TzzJakrOAtwOfB6iqF6vqv6edaqgF4DVJFoAzgeemHGbLhPw47we+NvUQc9oBPHvM40NsstC9JMku4FLgoWknGe5TwEeB30w9yGnwBmAF+MLs1tHtSbZPPdQIVfUz4DbgGeB54JdV9cCUM22qkCf55uye1fG/rjlmn1s5+mP7vukmHSKvsG3TvZc0yWuBLwF/V1X/M/U8oyS5Cnihqg5MPctpsgC8GfhcVV0KHAY2xes4Sc7h6E+/FwCvB7YnuX7KmRamPPhoVXXFyZ5PcgNwFbC7+r+B/hBw3jGPdzLxj3ejJXkVRyO+r6runXqewS4Hrk7ybuAM4Kwkd1bVpEEY6BBwqKpe+inqHjZJyIErgJ9U1QpAknuBtwF3TjXQproiP5kkVwIfA66uql9PPc8A3wMuTHJBkldz9MWW+yaeaZgk4ej91YNV9cmp5xmtqm6pqp1VtYuj/+++vYkiTlX9HHg2yUWzTbuBJyYcaaRngMuSnDn7fbqbiV/I3VRX5Kv4DPC7wP6j/+15sKr+ZtqRTl1VHUnyAeAbHH3V/I6qenzisUa6HHgv8IMkj862/X1V3T/hTFqfDwL7ZhcaTwPvm3ieIarqoST3AA9z9DbtI0z8UX0/oi9JzW2ZWyuStFkZcklqzpBLUnOGXJKaM+SS1Jwhl6TmDLkkNfd/xIaxoEDaZtEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(iso_rectangle, display_range=5, fill=True, color='grey')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Segment_2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Segment_2(PointC2(3, 6), PointC2(5, 2))\n"
     ]
    }
   ],
   "source": [
    "segment = skgeom.Segment2(c,d)\n",
    "print(segment)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(segment, color='green')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pinter = skgeom.intersection(line, segment)\n",
    "draw(segment)\n",
    "draw(line)\n",
    "draw(pinter, color='red')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "segment = skgeom.Segment2(a, b)\n",
    "pinter = skgeom.intersection(line, segment)\n",
    "draw(segment)\n",
    "draw(line)\n",
    "draw(pinter, color='red')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Circle"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Circle_2(PointC2(1.66667, 3.66667), 7.22222, clockwise)\n"
     ]
    }
   ],
   "source": [
    "circle = skgeom.Circle2(a,b,c)\n",
    "print(circle)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAAD4CAYAAAAn+OBPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAS9ElEQVR4nO3df5DVdb3H8eebXYHdFQRjSwRq1ZsSJV50JZWyKTAxTfKPJmxQuplOmkpOIQZT9kfT3BkttWy8IVZOoOigpuOPwp/duYnk8sMfuHolTFlAWWM03UVh2ff943O4Q7jL/jjf7/mccz6vxwwD58d+Pm/gvM7n8/2ez/l+zN0RkXQMiV2AiJSWQi+SGIVeJDEKvUhiFHqRxNTG6HTMmDHe1NQUo2uRJKxZs+ZNd2/s6bEooW9qaqKlpSVG1yJJMLNXe3tM03uRxPQ79Gb2GzPbbmbP73PfoWb2sJm9XPh9dD5likhWBjLS/w6Yud99VwGPuvvHgUcLt0WkjPU79O7+38CO/e6eBdxa+POtwFcyqktEclLsMf1H3H0bQOH3D/f2RDO7yMxazKylvb29yG5FZLBKdiLP3Re7e7O7Nzc29vhJgoiUQLGhf8PMxgIUft9efEkikqdiQ38fMLfw57nAvUW2JyI5G8hHdrcDq4BjzKzNzC4A/hM4zcxeBk4r3BaRMtbvFXnufm4vD03PqBYRKQGtyBNJjEIvkhiFXiQxCr1IYhR6kcQo9CKJUehFEqPQiyRGoRdJjEIvkhiFXiQxCr1IYhR6kcQo9CKJUehFEqPQiyRGoRdJjEIvkhiFXiQxCr1IYhR6kcQo9CKJUehFEpNJ6M3sCjPbYGbPm9ntZjY8i3ZFJHtFh97MxgGXA83u/imgBphdbLsiko+spve1QJ2Z1QL1wNaM2hWRjBUdenffAlwLvAZsA95295XFtisi+chiej8amAUcARwONJjZnB6ed5GZtZhZS3t7e7HdisggZTG9nwG84u7t7r4buBs4Zf8nuftid2929+bGxsYMuhWRwcgi9K8BJ5lZvZkZYRfb1gzaFZEcZHFMvxpYAawFniu0ubjYdkUkH/3en/5A3P1q4Oos2hKRfGlFnkhiFHqRxCj0IolR6EUSo9CLJEahF0mMQi+SGIVeJDEKvUhiFHqRxCj0IolR6EUSo9CLJEahF0mMQi+SGIVeJDEKvUhiFHqRxCj0IolR6EUSk8mFMaX6uMNbb8H770NXF9TUQG0tjBoFBx0UuzophkKfMHd47TVYswZWrw6/b9kC7e0h8DU14ZdZeK477NoF9fUwZgyMHQsTJ8K0aXDCCfDJT+oNoRIo9Ilpb4cHHoDbboNVq2DPnhDUd9+F7u5/fe6ePT238e674dff/x7auPNOGDIE3nsPjj4aZs+Gr3wlvAmY5f5XkgEydy95p83Nzd7S0lLyflP11ltw661wyy3w0kswdGgIbV6GDg1vJA0N8NWvwiWXwKRJ+fUnH2Rma9y9uafHMjmRZ2ajzGyFmb1oZq1mdnIW7Upx1q2DOXPCNHzhQnjuuTA9zzPwEPro6IDt2+HXv4bmZjjxRFixAnbvzrdv6VtWZ+9vAP7o7hOB49BedlGtXg1Tp8JnPgPLl4dpd2dnnFq6umDnTmhpgW9+Ew47DG6+OdwvcWSxVfVI4FTgFgB33+XubxXbrgzciy/CzJnw+c+HkHV29n5cHsM778COHXDFFXDkkXD33eHkoJRWFiP9kUA78FszW2dmS8ysYf8naX/6/OzcCZdfDlOmwCOPhNvlHKaODti8Gc4/P0z9X345dkVpySL0tcDxwE3uPgXoAK7a/0nanz4fq1aFM+ZLloRpfDmN7H3p6ID16+G44+BnP/vgpweSjyxC3wa0FbashrBt9fEZtCsH0NUVpsnTp0NbWxjdK1F3d6j96qvDqL95c+yKql8W+9O/Dmw2s2MKd00HXii2Xendjh1w6qmweHHlhn1/HR3w7LMweTI8+WTsaqpbVmfvLwOWmdmzwL8DP82oXdnPCy/AsceG1XOxzsjnZc+esKZgxoxwuCL5yGRFnruvB3pcCCDZeeIJ+PKXw6hYzifqirVzJ8ybB62tcO21WtWXNX3LrkKsXAlnnhkW1lRz4Pfq7AwLey6+OI2/bykp9BXg0UfhnHOqbzrfl44O+P3vwzJeBT87Cn2Z++tfYdas9AK/V2dnCP7ChbErqR4KfRnbujWssOvoiF1JXB0d8ItfhCXFUjyFvkzt3AmnnRaWrkoY8S+4ANaujV1J5VPoy5B7WKL6yiv6Ysq+Ojvh9NPhjTdiV1LZFPoydPvt8NBD1bPwJktvvw3nnacTe8VQ6MvM66/Dt7+t4/je7N4dVuzddlvsSiqXQl9G3GHu3PDFGeldR0f4/P7112NXUpkU+jJyzz3wl7/o6jL98d57cOGFsauoTAp9mdi9Gy67TNP6/tq9Oyxaevrp2JVUHoW+TCxZEk5SSf+99x5ceqlO6g2UQl8GOjth0SKN8gPlDhs2wMMPx66ksij0ZeDmm8NOMjJwHR0wf37sKiqLQh+ZO1xzTbpr67OwcSM880zsKiqHQh/Z44/rWL5Y778P110Xu4rKodBHds01+W8+Ue327IE77tCbZ38p9BHt2BFGeileTU3YQUf6ptBH9NBD2uU1Kx0dsGxZ7Coqg0If0W23aWqfpSef1AnR/lDoI9m1Cx57LHYV1WXYsLBKTw5MoY/kqafCls6SnXfegT/8IXYV5U+hj+Tpp7UgJ2vu4QtLcmAKfSR//rNCn4dNm/Qtxb5kFnozqynsWnt/Vm1Ws5aW2BVUp+HDwy5A0rssR/p5QGuG7VWtjg7Qbt35cId162JXUd4yCb2ZjQfOBLQDWT9s2RJGJMleZ6d2vu1LViP99cCVQK87jJvZRWbWYmYt7YkPc1u3hhVkkr3u7nBcL70rOvRmdhaw3d3XHOh57r7Y3ZvdvbmxsbHYbivatm3hxSn5ePXV2BWUtyxG+mnA2Wb2d2A58AUzW5pBu1Vr61aduc/T1q2xKyhvRYfe3X/g7uPdvQmYDTzm7nOKrqyKvftuWJEn+dAViA5Mn9NHoMDna8+e2BWUt9osG3P3J4AnsmyzGulCjvnS+ZID00gfgdbc56s206Gs+ij0EdTX64WZJ62BODCFPoKxY/XCzNPhh8euoLwp9BGMHavFOXn66EdjV1DeFPoIDj9cJ5vyYgZHHhm7ivKm0Ecwbpx2ps1LXR2MHx+7ivKm0EdwyCEwcmTsKqpTbS1Mnhy7ivKm0EcyZUrsCqpTZyccd1zsKsqbQh/J5z6ny1/nYfz4MMWX3in0kZx4ol6cefj0p2NXUP4U+kimTdM37bI2YgTMmhW7ivKn0Edy8MFhtJfsvP8+zJwZu4ryp9BHNGcONDTErqJ6TJ4Mo0fHrqL8KfQRnXWWvgaalbo6+PrXY1dRGRT6iMaNg2OPjV1FdejuhtmzY1dRGRT6yBYsCCegZPDMYMaM8J0G6ZtCH9nZZ+vLN8VqaID582NXUTkU+sgOOgguvTTsuCqDc+ihcOqpsauoHAp9GZg3T6P9YDU0wE9/Gqb40j8KfRkYMwa+//1wRR0ZmI98BM49N3YVlUWhLxPz52st/kA1NMAvfwlD9CoeEP1zlYmDD4af/ESLdfpryBCYOBHOOCN2JZVHoS8jF18crvqikatvw4bB0qU6lh+MLPaym2Bmj5tZq5ltMLN5WRSWopoauPNOncnvS0MD/PCHYaSXgctiTOkCvufunwBOAr5jZpMyaDdJEyfCj36kaX5vhgyBI46AK6+MXUnlymIvu23uvrbw53eAVmBcse2mbP58mDRJm2L0pK4OVqzQR5zFyPTo0cyagCnA6h4e0/70/VRTAw8+qG+M7a+uDu64A445JnYllS2z0JvZwcBdwHfd/Z/7P6796QdmzBhYuVKf3e/V0ACLFsGZZ8aupPJlEnozO4gQ+GXufncWbUr4fvjSpQp+XR2cfjosXBi7kuqQxdl7A24BWt3958WXJPs65xy44YZ0r6dXVwennALLl+vjuaxkMdJPA84DvmBm6wu/vpRBu1LwrW/BtdemN+LX1YULXd5/v1YrZqnovVPd/X8AvQfn7JJLwuf3l10GO3fGriZ/9fXw2c/CfffpU4ysae1XBbngArjnnrBkt5qnuvX1cOGF8MADCnweFPoKc/rpsGZNuNRWNa7cq6+Hm26C66/XZ/F5Uegr0NFHw/PPh+lvtazcGz4cGhvh8cfh/PNjV1PdFPoKdcgh4XP8G28M0/3aos/OxFNfD1/7GvztbzB1auxqqp9CX8HM4BvfgBdfrMxRv74+jO733gu/+50uEFoqCn0VGDcOHn00fJbd1BRG/nI2bFh4g1qwAF55JVzJVkpHoa8SZmHzjI0bw5S/sbH8wj98ePjs/cIL4dVX9W3CWBT6KlNTA3PnQlsb3Hxz2Ku9vj7umfARI8IVaxcsgE2bwiWuPvShePWkTqGvUkOHhh1f1q+HVavgvPNC+EaMKM0bwIgRoYZp0+DWW+GNN+DHP4bDDsu/bzkwc/eSd9rc3OwtLS0l7zd1e/bA6tVw113hCj3bt4fpdkcHdHUNvl2zcCjR3R1uz5wZ3nC++EUYOTKb2mVgzGyNuzf3+JhCn6433wwLfVpa4IknoLUV/vEP2L07HH/39DFgd3fYErq7G0aNggkTwicHJ58MJ5wARx2la/yVA4VeBqSzE7ZtC1PyXbvCLKCmJrwJHHpo2DNu9OjqXgpc6Q4U+gpe0iF5qa8PI/ZRR8WuRPKgiZhIYhR6kcQo9CKJUehFEqPQiyRGoRdJjEIvkhiFXiQxCr1IYhR6kcQo9CKJyWovu5lm9pKZbTSzq7JoU0TykcVedjXAr4AzgEnAuWY2qdh2RSQfWYz0U4GN7r7J3XcBy4FZGbQrIjnIIvTjgM373G4r3PcvzOwiM2sxs5b29vYMuhWRwcgi9D1dSuEDV+Zw98Xu3uzuzY2NjRl0KyKDkUXo24AJ+9weD2zNoF0RyUEWoX8a+LiZHWFmQ4HZwH0ZtCsiOchif/ouM7sU+BNQA/zG3TcUXZmI5CKTa+S5+4PAg1m0JSL50oo8kcQo9CKJUehFEqPQiyRGoRdJjEIvkhiFXiQxCr1IYhR6kcQo9CKJUehFEqPQiyRGoRdJjEIvkhiFXiQxCr1IYhR6kcQo9CKJUehFEqPQiyRGoRdJjEIvkhiFXiQxRYXezK4xsxfN7Fkzu8fMRmVVmIjko9iR/mHgU+4+Gfhf4AfFlyQieSoq9O6+0t27CjefImxeKSJlLMtj+m8CD/X2oPanFykPfe5lZ2aPAIf18NAid7+38JxFQBewrLd23H0xsBigubn5A/vXi0hp9Bl6d59xoMfNbC5wFjDd3RVmkTJX1K61ZjYTWAB8zt07sylJRPJU7DH9jcAI4GEzW29m/5VBTSKSo6JGenf/t6wKEZHS0Io8kcQo9CKJUehFEqPQiyRGoRdJjEIvkhiFXiQxCr1IYhR6kcQo9CKJUehFEmMxvg1rZu3Aq0U2MwZ4M4NyKrX/cqghdv/lUEPs/nur4WPu3tjTk6OEPgtm1uLuzan2Xw41xO6/HGqI3f9gatD0XiQxCr1IYio59IsT7x/i1xC7f4hfQ+z+YYA1VOwxvYgMTiWP9CIyCAq9SGIqPvRm9n0zczMbE6HvKHv5mdlMM3vJzDaa2VWl6HO//ieY2eNm1mpmG8xsXqlrKNRRY2brzOz+SP2PMrMVhddAq5mdXOL+ryj8+z9vZreb2fD+/FxFh97MJgCnAa9FKqHke/mZWQ3wK+AMYBJwrplNyrvf/XQB33P3TwAnAd+JUAPAPKA1Qr973QD80d0nAseVshYzGwdcDjS7+6eAGmB2f362okMPXAdcCUQ5GxlpL7+pwEZ33+Tuu4DlwKwS9Pv/3H2bu68t/Pkdwot9XClrMLPxwJnAklL2u0//I4FTgVsA3H2Xu79V4jJqgTozqwXqga39+aGKDb2ZnQ1scfdnYtdScMC9/DI0Dti8z+02Shy4fZlZEzAFWF3irq8nvOF3l7jfvY4E2oHfFg4xlphZQ6k6d/ctwLWEWe424G13X9mfny3r0JvZI4Xjlf1/zQIWAT+KXMPe5/S5l1+WJfVwX5SZjpkdDNwFfNfd/1nCfs8Ctrv7mlL12YNa4HjgJnefAnQAJTu/YmajCTO8I4DDgQYzm9Ofny1qs4u89baPnpkdS/jLPmNmEKbVa81sqru/Xooa9qml1Hv5tQET9rk9nn5O67JkZgcRAr/M3e8ucffTgLPN7EvAcGCkmS1193696DPSBrS5+94ZzgpKGHpgBvCKu7cDmNndwCnA0r5+sKxH+t64+3Pu/mF3b3L3JsJ/wPFZB74v++zld3YJ9/J7Gvi4mR1hZkMJJ2/uK1HfAFh4p70FaHX3n5eybwB3/4G7jy/8388GHitx4Cm81jab2TGFu6YDL5SwhNeAk8ysvvD/MZ1+nkgs65G+AtwIDCPs5QfwlLt/O88O3b3LzC4F/kQ4Y/sbd9+QZ589mAacBzxnZusL9y109wdLXEdslwHLCm++m4D/KFXH7r7azFYAawmHluvo53JcLcMVSUxFTu9FZPAUepHEKPQiiVHoRRKj0IskRqEXSYxCL5KY/wPGh2P9B8XS3QAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(circle, display_range=4, fill=True, color='blue')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Polygon"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Polygon_2(\n",
      "  PointC2(4, 5)\n",
      "  PointC2(3, 6)\n",
      "  PointC2(2, 1)\n",
      "  PointC2(5, 2)\n",
      ")\n",
      "\n"
     ]
    }
   ],
   "source": [
    "polygon = skgeom.Polygon([a, c, b, d])\n",
    "print(polygon)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(polygon, facecolor='lightblue', point_color='red')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "e = skgeom.Point2(3,2)\n",
    "f = skgeom.Point2(4,2)\n",
    "g = skgeom.Point2(4,4)\n",
    "h = skgeom.Point2(3,4)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### PolygonWithHoles"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Polygon_with_holes_2(\n",
      "Boundary(\n",
      "Polygon_2(\n",
      "  PointC2(4, 5)\n",
      "  PointC2(3, 6)\n",
      "  PointC2(2, 1)\n",
      "  PointC2(5, 2)\n",
      ")\n",
      "\n",
      "Holes\n",
      "1\n",
      " Polygon_2(\n",
      "  PointC2(3, 2)\n",
      "  PointC2(4, 2)\n",
      "  PointC2(4, 4)\n",
      "  PointC2(3, 4)\n",
      ")\n",
      "\n",
      ")\n",
      "\n"
     ]
    }
   ],
   "source": [
    "polygon2 = skgeom.Polygon([e, f, g, h])\n",
    "polygon_with_holes = skgeom.PolygonWithHoles(polygon, [polygon2])\n",
    "print(polygon_with_holes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(polygon, polygon_with_holes=polygon_with_holes, facecolor='lightblue', point_color='red')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Voronoi Diagram"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<skgeom._skgeom.voronoi.VoronoiDiagram object at 0x7f5c3378ab70>\n"
     ]
    }
   ],
   "source": [
    "point_list+= [e, f, g, h]\n",
    "voronoi_diagram = voronoi.VoronoiDiagram()\n",
    "for point in point_list:\n",
    "    voronoi_diagram.insert(point)\n",
    "print(voronoi_diagram)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(voronoi_diagram, visible_point=False, sites_color='blue', finite_edges_color='red')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
